package com.hoshino.momochi.service;

import com.hoshino.momochi.model.domain.Message;

import java.util.List;

public interface MessageService {

    /**
     * 根据发送者 ID 查询消息
     *
     * @param sendId
     * @return
     */
    List<Message> findMessagesBySendId(Long sendId);

    /**
     * 根据 接收者 ID 查询消息
     *
     * @param pullId
     * @return
     */
    List<Message> findMessageByPullId(Long pullId);

    /**
     * 查询接收者或发送者 ID 是 uid 的消息
     *
     * @param uid
     * @return
     */
    List<Message> findMessageByUserId(Long uid);

    /**
     * 以发送方的角度删除此条消息
     *
     * @param id
     */
    void updateByIDAndSend(Long id);

    /**
     * 以接收方的角度删除此条消息
     *
     * @param id
     */
    void updateByIDAndPull(Long id);

    /**
     * 添加消息
     *
     * @param message
     */
    void addMessage(Message message);

    /**
     * 删除 isDelete = 1 的数据
     */
    void delIsDeleteAsTrue();

    /**
     * 获取 当前用户 与 指定用户的聊天记录
     *
     * @param aid
     * @param uid
     * @return
     */
    List<Message> getMessageByUser(Long aid, Long uid);
}
